package locadora.negocio;

import static org.junit.Assert.*;

import locadora.dados.RepositorioItem;
import locadora.dados.RepositorioPessoa;
import locadora.negocio.pessoas.Cliente;
import locadora.negocio.pessoas.Funcionario;
import locadora.negocio.produtos.Item;
import miscelanea.Data;

import org.junit.Test;

public class EmprestimoTest {

	@Test
	public void testAlugarItem() throws Exception {
		RepositorioPessoa reposPessoa = new RepositorioPessoa();
		RepositorioItem reposItem = new RepositorioItem();
		
		Cliente p1 = new Cliente("Anderson", new Data("13021986"), "6334563", "SSPPE", "22233366638", null, "51790550", null, null, null);
		Funcionario p2 = new Funcionario("Victor", new Data("13021986"), "6334563", "SSPPE", "22233366638", null, "51790550", null, null, null);
		Item i2 = new Item("T2", 2, new Data("01021940"), "D1", 35, 0);
		
		reposPessoa.adiciona(p1);
		reposPessoa.adiciona(p2);
		reposItem.adiciona(i2);
		
		reposPessoa.armazena();
		reposItem.armazena();
		
		String chavePessoa = p1.getChave();
		String chaveItem = i2.getChave();
		
		Data dataLocacao = new Data("17062012");
		Data dataDevolucao = new Data("21062012");
		
		Emprestimo.alugarItem(chavePessoa, chaveItem, dataLocacao, dataDevolucao);
		
		// Testa se a operação foi corretamente executada
		Cliente c = (Cliente) reposPessoa.busca(chavePessoa);
		Item i = p2.buscarItem(chaveItem);
		assertEquals(c.getChave(), i.getLocador());
		assertEquals(dataLocacao, i.getDataLocacao());
		assertEquals(dataDevolucao, i.getDataDevolucao());
	}

}
